package indi.kider.server.woniubus.service;

import indi.kider.common.model.apartment.Community;
import indi.kider.common.model.apartment.HousesMsg;
import indi.kider.common.model.employee.Employee;
import indi.kider.common.model.woniubus.HouseVo;
import indi.kider.server.apartment.model.CommunityTitle;
import indi.kider.server.apartment.model.HousesCommunityQuery;
import indi.kider.server.apartment.model.HousesCommunityVO;
import indi.kider.server.woniubus.pageModel.CommunityPageQuery;
import pers.vankid.common.utils.page.PageRequest;
import pers.vankid.common.utils.page.PageResponse;

import java.util.List;
import java.util.Map;

/**
 * 公寓 房源
 * 二期新改接口
 */
public interface HouseService {
    /**
     * 通用用户房源列表
     * @param request
     * @return
     */
    PageResponse<CommunityTitle> houseList(PageRequest<HousesCommunityQuery> request);

    /**
     * 公寓列表
     * @param request
     * @return
     */
    PageResponse<Community> communityList(PageRequest<CommunityPageQuery> request);


    /**
     * 根据房间ID获取 已入住总人数  男几人 女几人
     * 并且设置人数到h_houses表
     * @param houseId 房间ID
     * @return  { inSumCnt:3,inManCnt:1,inFemanCnt:2}
     */
    Map<String,Object> getHouseUserCntMap(Long houseId) throws Exception;


    /**
     * 根据登录用户查询公寓列表
     * @param employee
     * @return
     */
    List<Community> queryCommunityList(Employee employee);
    /**
     * 根据登录用户查询公寓带租客人数列表
     * @param employee
     * @return
     */
    List<Community> queryCommunityTenantList(Employee employee);

    /**
     * 根据公寓id获取房间列表
     * @param communityId
     * @return
     */
    List<Map> queryHouseList(Long communityId)throws Exception ;


    /**
     * 根据房屋ID查询房屋信息。
     * @param houseId
     * @return
     */
    HouseVo getHouseById(Long houseId);

}
